@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u(This Document is formatted in 38 cols. for viewing on the monitor of an Atari 8 bit computer)This set of files comprisesT} the AnticSpelling Checker from theOctober 1987 issue ofAntic magazine.This ARC contains the followingfiles:READ.ME (U}this file)PSC.EXE the P(ersonal) S(pelling)C(hecker) (ML programme)PSC.DOC the Dox from the Antic diskand for programmV}ers only (you don'tneed these files to use theprogramme)SPELL.M65, SPELL.DAT and SPELL.SUBwhich are tokenized MAC/65 souW}rcecode (if you don't have MAC/65 therewas a detokenizer in Analog at onetime... be careful... there are bugsin it as notX}ed in a later letter inthe feedback section of Analog).The PSC.DOC file indicates that theAntic disk has a DICTION.1 fileY} (adictionary file to start you offbesides the built in dictionary) THATFILE IS NOT INCLUDED HERE as a laterletter in AntZ}ic's I/O Board (theirletter section) indicated that it iscorrupted. The letter (from Antic)indicated that the later monthl[}y diskwas supposed to have a correctedversion of DICTION.1... but itdidn't! So I am not including thecorrupted dictionary\} and you willhave to create your own from yourfiles. -----This is NOT a fast programme or oneto supplan]}t any good spell checkeryou already may have. The hardestthing about writing a spell checkeris how to compress/encode the^}dictionary.For example, one wouldn't want tosave the words:format, formats, unformat, unformats,formatted, unformatted_}instead one would want to store the"stem" (format) and code indicatingthat it can take the prefix "un", thesuffix "s" and`} that it forms the pasttense by duplicating the last letterand using the regular "ed" for thepast tense.Commercial spella}ing checkers use thistype of coding (and search for"unformatted" in their dictionary bychecking for the stem and seeing ifb}the prefix/suffices are allowed).This spelling checker, however, onlyallows the checking of individualwords (not their pc}arts) so that eachof the above forms will HAVE to be ina dictionary for the checker to findthem.I generally do NOT use td}his spellchecker because of this limitationwhich slows it up and requires largedictionaries, instead using the spellchecke}er that came with DosXL(GTSpell, it is faster and smallerthan Antic's Spell-Magic, but youhave to check the file and then f}makethe corrections yourself back in theword processor).However, for small jobs, after youhave added dictionaries (basedg} onfiles of text), this should providesome minimal support and catch someof your errors. ------- h} CREDITS -------The spell checker was written byBryan Schappel and Barry Kolbe. ------- gPERSONAL SPELLING CHECKERBY BRYAN SCHAPPEL and BARRY KOLBEThis speedy, powerful machinelanguage program supports up to 1 j}0personal dictionaries. It's easy touse and works with most DOS files. A48K system and about 31,800 freebytes give you a k}bout 6,360 words perdictionary (counting about fivebytes per word) -- as many as 63,600words altogether.XXXGETTING STA l}RTEDFormat a blank disk with DOS 2 or2.5, then use DOS menu option "H" toWRITE DOS FILES to the disk. Thiswill be your P m}ersonal Spell Checkingdisk. Next, copy PSC.EXE to this disk.Rename PSC.EXE to AUTORUN.SYS.Finally, copy DICTION.1 to t n}hisdisk. This is a dictionary file.XXX Turn your computer off and placeyour Personal Spell Checker diskinto drive 1. o} Remove all cartridges(hold down [OPTION] on an XL/XE) andturn your Atari ON. At the prompt, insert aDOS-formatted dis p}k that will containyour dictionaries (the monthly diskcontains DICTION.1, a sampledictionary for you to use). You canuse q} the program to create additionaldictionaries. Legal dictionaryfilenames are DICTION.0 throughDICTION.9.XXX NOTE: r} The program may only useone dictionary at a time. (Forexample, after proofing your textfile with the first dictionary, y s}oumust stop, load the next dictionaryfile, and check the text again.)XXX If there are no dictionary fileson your dis t}k, the program choosesits built-in default dictionary.The top half of the screen displaysinformation to help you use the u}program, such as the amount ofavailable memory, your currentdictionary and disk directories("catalogs"). The bottom half v}isyour work area. This is where themain menu will appear.XXX Choose a menu item by typingthe number or the first lett w}er of that item:1) Proof Document2) Delete Word3) View Dictionary4) Add File to Dictionary5) Catalog6) Exit PSCProo x}f: Type in a filename. ("D:"isn't needed if you're using drive1.) The top of the screen shows theXXXfilenames of the c y}urrent dictionaryand file being proofed, the amountof free memory, the number of wordsin the dictionary and the number of z}words proofed so far. Below this isthe context line, which shows thepart of the sentence containing theword being checked {}. An unknown wordis highlighted and displayedseparately below. If it's spelledcorrectly, just press [RETURN] atthe "Corr |}ect?" prompt. Otherwise,type in the correct spelling. Toadd the word to the dictionary,press [RETURN] or [Y]. Press [N] }} toskip it.XXXDelete Words: Enter the word to bedeleted from your dictionary. Thenpress [Y] after the prompt "Deletew ~}ord? [Y/N]" to remove it.View Dictionary: This is forexamining the current dictionary.Pressing any letter key displays th }ewords beginning with that letter.For more words, press [RETURN].Words can be up to 29 characters.Add File: This lets yo }u build adictionary fast -- but do this onlyif you're sure that all the words inthe document are spelled correctly.XXXC }atalog: This gives a directory ofdrives 1-4, or 8 for a RAMdisk.Exit: At this point you can save thecurrent dictionary by } putting yourdictionary disk in drive 1 at theprompt and pressing [RETURN]. Youcan now restart or return to DOS.If you r }estart, the currentdictionary remains in memory, butyou can load one differentdictionary if you want.XXXThe first two }bytes of a dictionarycontain the number of words in thedictionary. Next are 27 pointers tothe beginning of each set of wo }rds,A-Z. This speeds up the search fora particular word. The 27th pointerpoints to one byte after the end ofthe diction }ary. Third is a tablecontaining the number of words undereach letter.Finally there is the defaultdictionary of 26 words }. These areAT, BUT, CAN, DO, END, FOR, GET,XXXHOW, IN, JOG, KNOW, LET, ME, NO, ON,PUT, QUIT, RED, SO, THE, UP, VAN,WHO }, XEBEC, YES, and ZIP. The firstletter is not actually present inthe word, and the last letter is ininverse video. Each }single-letterword -- that is, "I," "A" andwhatever other single letters youchoose to call "words" -- is storedas a single } inverse letter.If you choose a command by mistake,press [RETURN] at the first promptto go to the main menu.XXXWhen p }roofing a document, PSCcreates a file called DOC.TMP andwrites your corrected document toit. Your document disk must have } atleast enough room for one copy ofthe original document, or theproofreading process will abort.Since you can specify a }ny drive asthe source disk, the DOC.TMP filewill also be written to that drive-- so if you have a RAMdisk, thisprogram fl }ies.XXXWhen the file has been proofedsuccessfully, the source file isgiven the extender ".BKP" (even ifit already had }an extender), andDOC.TMP is given the originalfilename.This program is not case-sensitive,so you can enter words in eith }eruppercase or lowercase -- eveninverse video -- and the programwill convert them to normaluppercase. The only time this }conversion is not performed is whenyou enter a corrected spelling for aword during a proof.XXX EXTRA BONUS: We've als }o includedSPELL.M65, SPELL.DAT and SPELL.SUB,the MAC/65 source code files forthe Spelling Checker. Due to thesize of the }se files, they have beenstored in MAC/65 "SAVEd" form. You do NOT need these files touse the PSC program.hesize of the o -=1L#_|^`"}Enter RETURN for DEFAULT DictionaryWhich # to Load: Wo}rking Dictionary #: I/O Error - Press any key Re-startFile to Proof: Add WordAdd File: Delete Word: Delete '}Word Not Found.Save DictionaryInsert disk, Press View Letter [A-Z]? View More Words in ' '.Drive [1,2,3,4,}8]? 12348}1) roof Document2) elete Word3) iew Dictionary4) dd File to Dictionary5) atalog6) xit PSC}Choice > PDVACEQRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRRRRRRRE|$ictionary|&ile|ARRRRRRRRRRRWRRXRRRRRRRRRRWR}RRRRRRRRRRRD|&ree|7ords|#ount|ZRRRRRRRRRRRXRRRRRRRRRRRRRXRRRRRRRRRRRRC}000 1112b437?9H512Ck1 u?11 1`轊1H) >h`83Cj4C}` 8BCCCȱȄ10轊1фĮ`eiŕʥŖ8`Ӡ. \< >u11:1:- ?0_} @0Z1 v< C@) }B 32 p2 ;> _B& Lb4/ \< P2' ; >бȹ1 p2ei3C8廅4}C弅 85C6CN5C85C6C6C S3B8BBB C51)8@ B8婙BCC v1/ \<&/ \<:/ \< 8; <0BÝD-EJK V ; > L<Щ B V < <_ \b \ЩBѝD-E JK V@l - <0BÝD-EJK V }>hh <.a 8` d909-1 挠1ɛ <<i}恥İ  <` : b:L: :( - ` - `c/ \ !` ::/ ЎԆ}ʎčʆ' ; #0-1L;ԠW; \e; \ԩ( s-s- @;L;} S<ɛ`i(`H ԍh@ЈL_ i0Х itLb}"#$􅇥`ɛ L<}~ ; ;` <L=`{}ҥ̝1 >Ý11L; ;` @?. \<.} \< ;. \< S<ƍ` ;0 \< >Hi '8J. \< P2h! !> ;憠 = t81ɛ 7 p2 }. \< > 3`). \< S<ɛ)YYNY ;ƍ ;(`k1` =8`1:1:.11 u?}1ɛ11ESD1`ԅ ؠ .ȱ)󄢩8墪H.h`ɛ )a{)`. \<膸 >@ ?0}81 v< C@ }B _B 32 p2 3 11 <<)>1Ȅk1 <<)>1((0 <<)>1ii) <<)>1('>1!`iCjClCnCo}CqCsCuCwCxCzC}CCCCCCCCCCCCCCCCUANOEOONOEUU}IEHAHEBEEI -CCCCCCCCCCUANOEOONOEUUd dX;--------------------------nX;xX;DATA/HOLD AREAS FOR SPELLX;X;--------------------------X;X;Display L}istX;DLIST p=p=p=R MYLINE =B TOPHALF ==== ==0=B BOTHALF ====} ==== ==A DLIST"X;,MYLINE =A A6 =AThe PersonalA@ =A Spelling AJ =AC}hecker AT =A A^X;h ITXT r Aby: Bryan SchappA| Ael and Barry KolbeA == AInsert Dictionary }A ADisk andA == APress A ;;end of textX;X;Misc. TextX;DIC_NAME AD1:DICTION.?A E}OL=EADR AE:ABKP_TXT EOL=APKB.ATMPNAME AD1:DOC.TMPA=EOLFREETXT AE SECAD_HEAD =A DictionaryA&}DIR_N =A Directory A0DIR_Q =AD A:D_NONE =A NONE ADD_CONT =A CONTEXT AN =ALINE AXNOT_F AC}orrect? A=bD1TXT AD1:AlDIR_TXT AD1:*.*A=EOLvYNTXT A [Y/N]? A=A2I @== =`X;LIKE_SPC A .,?;:()}!-/\A A[]+*=$%&@<>#_|^A EOL==`="X;WHAT_D }=AEnter RETURN A Afor DEFAULT DictionA AaryA=EOL=EOL} AWhich # to Load: A=X;DEF_NUM EOL=EOL AWorking Dictionary A A#: A= X; IOTXT EOL=AI/O Error -}A= NUMBUF A A=*WAIT_TXT EOL=APress anyA4 A key A=> REST_TXT EOL=ARe-startA=HX;RPROOF_NM AFi}le to Proof: A\ fX;pADD_TXT AAdd WordA=zADD_FILE AAdd File: A=DEL_TXT ADelete Word: A=DEL_IT EO}L=ADelete 'A=WNF EOL=AWord Not Found.A EOL=SAV_TXT ASave ADC_TXT ADictionaryA=DC_PRM EOL=AIn}sert A=DC_PRM2 A disk, Press A A A=X;V_TXT AView Letter [A-Z]?A A A=V_MORE AView MoreA=}X;N_WORDS A Words in 'AN_W A '.A=$DRIVE_N ADrive [1,2,3,4,A. A8]? A=8LEGAL_D A12348ABX;LM_}MENU }=AAV EOL=EOL` A1) roof DocumentAj EOLt A2) elete WordA=EOL~ A3) iew DictionaryA EO}L A4) dd File to A ADictionaryA=EOL A5) atalogA=EOL A6) xit PSCA=EOL=EOL AChoice > A=X;CO}M_KEY APDVACEAX; INFO_BOX AQRRRRRRRRRRRRRRWRRRRA ARRRRRRRRRRRRRRRRRRREA A|Dictionary > | FiA  Ale > } A A |A AARRRRRRRRRRRWRRXRRRRA( ARRRRRRWRRRRRRRRRRRRDA2 A|Free: |Words:A< A |Count: } AF A |AP AZRRRRRRRRRRRXRRRRRRRAZ ARRRRRRXRRRRRRRRRRRRCAdX;nM0 AA=xM1 AA=}M2 AA=M3 AA=M4 AA=M5 AA=X;"NAMTAB M0=M1=M2=M3=M4=M}5X;X;Command TableX;COMTAB PROOF DELETE VIEW JUST_ADD DIRECT QUITX;"X;Buffer Space,X};6CNLINE-;;context line@WORD;;current wordJT_WORD;;tokenized wordTLAST_WORD;;last word^MYBUF-;;in}put bufferhFILNAM<;;file namer EOL=ent wordJT_WORD;;tokenized wordTLAST_WORD;;last word^MYBUF-;;in-6dEIn#X;------------------------------xX;X;The Super-SpellerX;X;by: Barry Kolbe andX; Bryan Schappel}X;#X;------------------------------X;PASSPASS PASS>D:SYSEQU.M65X;X;*** MACRO DEFI}NITIONS ***X; PRINT " Q>4 , %>5 6 EPRINT@JX;T BUMP ^# h H@BMPr # |@BMPX;X;Ze}ro Page UsageX; SCR SCR2 INDR XPOS YPOSLMARGINRMARGIN SAVEX SAV}X2 COUNT IPUT& MAXLEN0 ILEN: CHARD RINDEXN WINDEXX TEMPb R_PASSl MAXGET}v RXSAV RYSAV WXSAV WYSAV EOF? EOF2? OEOF?LAST_ONE RJUST WCOUNT} ERRORWORD_POSDICT_NUM S_LEN LEN_1  LEN_2 FREEM  EDITED* ASAV4V_START}> V_ENDH V_TEMPR PREFIX\NO_JUNKf ERRORRpOUTPUT?zX;X;Memory ManagementX; LLEN} HLEN FROML FROMH DESTL DESTH ENDPOSI ENDZPG EIX;X;Other EquatesX;}WORD_C$ PLR2.X;8 BTOPHALFLBOTHALFVOUTBUF` INBUF jSTART!BEGINtX;~!X;INCLUDE} DATA AND SUBROUTINESX;>D:SPELL.DAT>D:SPELL.SUBX;X;Zap Top-HalfX;ZAP_TOP%>CZAP_TPTOPHALF8}PTOPHALF83 HZAP_T: X;X;Intro RoutineX;(INTRO ZAP_TOP2Q>:< PSDMCTLF$>P &EDITEDZ &COL}OR4d &SIZEP2n &PMBASEx &IPUT &SHFLOK0&CHQ>Ī PPCOLR2$> &GRACTL0 &LMARGINQ>' PRMARG}IN CLRSCRQ> PCOLOR2Q>  PCOLOR1" Q>4DLIST, PSDLSTL6 Q>5DLIST@PSDLSTLJ Q>4DLIT PVDSLST^ Q>5}DLIhPVDSLSTrQ>| PHSCROL %>4IVBI $>5IVBI SETVBVQ> %>4DVBI $>5DVBI SETVBVQ> PNMIE}NX;Q>4TOPHALF( PSCRQ>5TOPHALF(  PSCRX;$>& PTITL20 QITXT9:?DR>N FIADD40XP22b} QITXT9lR>v FIADD40R> FGET_RET P@SCR73HP2IADD40 SCRADD40 !PTITLX;X;Just Read an EOL f}rom K:X;GET_RET GETKEY R>EOL HGET_RET: X;X;Add 40 to SCR X;*SCRADD40QSCR4,>O>(HPSCRR DA}DD_RTS\ #SCRf ADD_RTS:pX;zX;Display List InterruptX;DLI5Q> PWSYNC PCOLPF279X;X;Immed}. Vertical BlankX; IVBI%>IVBI.1QCOLOR08 PCOLPF08 1 IIVBI.1 !SYSVBV$ X;. X;Deffered VBI8 X;B DVBI}Q>L >V DVBI.1PPLR29` 2j HDVBI.1t QIPUT~ FDVBI.OUT QXPOS T? T? , O>0 PHPOSP2 QYPOS T? T? }T? , O>t > Q> PPLR29 DVBI.OUT!XITVBV( X;2 X;Clear Screen< X;F EPUTR>}P HEPUT_2Z CLRSCRQ>d ?n }CLR_SCPBOTHALF8x PBOTHALF8 PBOTHALF8 3 HCLR_SC PYPOS QLMARGIN PXPOS : X; EPUT_2R>EOL H}TRY_DEL PUTCRQLMARGIN PXPOS #YPOS !SCROLL X; TRY_DELR>~" HNORMAL, MOVELEFT6 GETSCR@ Q>J ?T P}@SCR7^ :h X;r X;We assume the character is| X;'Normal'. X; NORMAL ASC2IC 5 GETSCR 7 %> P@SCR7 X;} X;Move Right X; GORIGHT$XPOS 2 (RMARGIN DEPLEAV FEPLEAV #YPOS& SCROLL0 $LMARGIN: EPLEAV&XPOSD }:N X;X X;This tries to Move Leftb X;l MOVELEFT$XPOSv 0 (LMARGIN EGOX $RMARGIN QYPOS HMVUP1 $LMARGIN} !GOX MVUP1"YPOS GOX&XPOS : X; !X;This gets the Address of the X;byte we want to put. X; GETSCRQ>4BOT}HALF(  PSCR Q>5BOTHALF( * PSCR4 X;> %YPOSH GETSC1 SCRADD40R 1\ IGETSC1f QSCRp ,z OXPOS PSCR} DGETSCDN #SCR GETSCDN: X; X;Scroll the screen X; SCROLLQYPOS R> DSCMOVEDN Q> PYPOS Q>4}BOTHALF(  PFROMLQ>5BOTHALF(  PFROMH$Q>4BOTHALF. PDESTL8Q>5BOTHALFB PDESTHL Q>4V PLLEN` Q>5}j PHLENt MOVE_UP~ SCMOVEDN:X;X;Make ASCII to ICODEX;ASC2IC BITER LA2I9 $SAVX2:X;X;Ready }the BitsX; BITER5U?U? U?U?M>( &SAVX22><7FM>P:ZX;dX;Get a KeynX;xGETKEYQKEYBDV}5QKEYBDV5:X;X;Print a StringX;EPRINTPEPRL 'EPRL EPRLQ FEPRLV EPUTBUMP} EPRL !EPRL EPRLV:X;"X;Show INFO_BOX,X;6SHO_BOX ZAP_TOP@%>JSHB_1QINFO_BOX8T PTOPHALF8^3h)>}r HSHB_1|X; QDICT_NUM ASC2ICPTOPHALF6%>SHB_2QFILNAM8 R>EOL FSHB_3 ASC2ICPTOPHALF}@83)> HSHB_2X;X;Enter here to Update #'sX;SHB_3QNUM_WORDS&%NUM_WORDS0 CON_NUM:%>DSHB}_4QNUMBUF8N ASC2ICXPTOPHALF8b1l ISHB_4v FIND_FREE %FREEM QFREEM CON_NUM%>SHB_5QNUMBUF}8 ASC2ICPTOPHALF81 ISHB_5 %WCOUNTQWCOUNT CON_NUM%>SHB_6QNUMBUF8  ASC2ICPTOPHA}LF8 1* ISHB_64:>X;HX;Close the DiskRX;\DCLOSE$>0fHDCLpCLOSE2$> z DCLQ>  PICCOM9 !CIOVX;}!X;############################X;X;Start of ProgramX;!X;############################X; BEGIN-= QPOKM}SKM>;;Kill BREAK PPOKMSK PIRQEN.$ INTRO.%>8Q> BER_I1PINBUF8L1V IER_I1` GETDIRj EUSE_}DEFtPRINT WHAT_D~ #IPUTD_NUM GETKEY R>EOL FUSE_DEF1M>R> 0 DD_NUMR> : ED_NUM PASAV L}OAD_DIC QASAV HSPELLX; USE_DEF1"IPUTUSE_DEFPRINT DEF_NUM #IPUT(G_NUM GETKEY2M><R> 0F DG_NU}MPR> :Z EG_NUMdSPELLPDICT_NUMnPDIC_NAME x ZAP_FN SHO_BOX "IPUTX;MAINLOOPPRINT M_MENU #IPU}TM_KEY GETKEY CONL2U%>M_COMRCOM_KEY8 FM_CK1 IM_COM GM_NUM M_CKC !M_ENTER M_NUMR> 0" }DM_KEY,R> 76 EM_KEY@;JS> 1T M_ENTERT?^?h QCOMTAB8rPCOMJMP|QCOMTAB8PCOMJMP QNAMTAB85}QNAMTAB85 CLRSCR PUT_A07?7 EPRINT PUT_A0 PUTCR #YPOS "IPUTCOMJMP!&X;0X; }Print a Inverse Space:X;DPUT_A0Q>N !EPUTXX;bX;Input RoutinelX;vINPUT'MAXLEN$> &IPUT0 &ILEN }X;INLOOP&SAVEX GETKEY $SAVEX R>EOL FINDONE PCHARM>R>  DINLOOP R>~ HINEXT (>* FI }NLOOP40> EPUTXH !INLOOPRX;\ INEXTR>`f FINLOOPpR>{z FINLOOPR>} EINLOOP QCHAR (MAXLEN FINLOO }P PMYBUF9 EPUTX2 HINLOOPX;INDONEPMYBUF9 &ILENQ>PMYBUF9 PIPUT !PUTCR$X;.X;Put a  }byte but save X8X;BEPUTX&SAVEXL EPUTV $SAVEX`:jX;tX;Handle I/O Error~X;IOERRORQ> CON_NUMPRI}NT IOTXTPRINT NUMBUF PUTCRWAITKEYPRINT WAIT_TXT #IPUT GETKEY "IPUT:X;X;Show NOT FOUND}X; NOT_FOUND CLRSCRPRINT M0Q>( PYPOS2 FIND_LEN<5F,PO> Z PXPOSdQ>'n;x SXPOSV? PXP}OSPRINT NOT_F PRINT_WORD7 PRJUST$> %WORD_POSNOT_1QTOPHALF8L>PTOPHALF832} (RJUST HNOT_1Q>" PYPOS, PXPOS6Q> >@ EPUTJ #XPOST%>^ INPUTh STRIPr QMYBUF| R>EOL FNO_REP}X; MY2WORDNO_REP SEARCH DNO_R1Q> PYPOSQ>  PXPOSPRINT ADD_TXT GETYN HNO_R1 ADD_}WORD NO_R1:X;X;Get a Y/N&X;0GETYNPRINT YNTXT: #IPUTDGET_W GETKEYN R>EOLX FHAV_YbM>lR> Yv H}TRY_N HAV_YQ> Y HSHO_RESP TRY_NR> N HGET_WSHO_RESPR> Y6 EPUT "IPUT PUTCR8:X;X;Get W}ord lengthX; FIND_LEN%>FND_1QWORD8  FFND_EN*34 HFND_1> FND_ENCH:RX;\X;Get a FilenamefX;p GETFN}%>z INPUTX; QILEN HCOP0;:X; COP0$> QMYBUFR> : FYZERO QMYBUFR> : FYZERO}%>COP1QD1TXT8 PFILNAM8$1. ICOP18%>B HCOPMYBFL YZERO%>VCOPMYBFQMYBUF9` CONL2Uj PFILNAM8t R>}EOL~ FCOPFILD32 HCOPMYBFCOPFILDQ>PFILNAM8 QFILNAMR> E FINSDDR> S HCOPOK INSDDQ> D} PFILNAM COPOK, :X;X;Make a number ASCII(X;2X;ENTER: Y=lo byte<X; A=hi byteFX;PCON_NUM'FR0Z P}FR0d IFPn FASCx%>Q> CON_1PNUMBUF81 ICON_1X; CON_23 Q@INBUFF7 ICON_2M> P@INBUF}F7 'RJUSTQ>; SRJUST>5"%>,CPYRJQ@INBUFF76 PNUMBUF9@3J2T(>^ HCPYRJh7r:|X;X;Con}vert lower to UpperX;CONL2UR>EOL FCNNCRM>R>a DCNNCRR>{ ECNNCRM> CNNCR:X;!X;Just ad}d words to Dictionary X; JUST_ADDPRINT ADD_FILE $>& &OEOF?0 2: &OUTPUT?D GETFNN EJ_MAINX OPENINb G}JUST_ERRl Q>v PWCOUNT PWCOUNT PLAST_WORD SHO_BOX ADD_LP GET_WORD QEOF2? HJADD_CL CONTEXT  }SEND_WORD TOKENIZE SEARCH DUP_CNT ADD_WORD UP_CNTBUMP WCOUNT! SHB_3 ! !ADD_LP!JADD_CLQERRORR ! I }J_MAIN*!R>4! FJ_MAIN>!JUST_ERR IOERRORH!J_MAIN DCLOSER! !MAINLOOP\!X;f!X;Open Input filep!X;z!OPENIN DCLOSE!}!Q>! PR_PASS!Q>!PRINDEX!Q>! PEOF?! PEOF2?! Q>4! PMAXGET! Q>5!PMAXGET!Q>! PRINDE"}X"$>0"Q>" PICCOM9$" Q>4FILNAM." PICBAL98" Q>5FILNAMB" PICBAH9L"Q>V" PAUX19`"Q>j" PAUX29t" !CIOV~"X;"#}X;Open OUTPUT File"X;"OPENOUT CLOSE2"$> "Q>" PICCOM9"Q>" PAUX19"Q>" PAUX29" PWINDEX"PWINDEX$}# POEOF? # POUTPUT?#Q>4TMPNAME# PICBAL9(#Q>5TMPNAME2# PICBAH9<# !CIOVF#X;P#X;Get a word from fileZ#X;d#GET_%}WORD%>;;indexn# 'NO_JUNKx#GET_1 GET_BYTE# $EOF2?# HWG_L# PCHAR#M># CONL2U#R> A# DGOT_SPC# R> Z# D&}ST_WORD#GOT_SPCQCHAR# SEND_BYTE# QOEOF?# HWG_L$ !GET_1$X;$ST_WORDQCHAR"$ PWORD8,$W_LOOP GET_BYTE6$ $'}EOF2?@$ HG_SPC1J$$>T$ PCHAR^$W_LP1QCHARh$RLIKE_SPC9r$ FG_SPC|$M>$RLIKE_SPC9$ FG_SPC$0$ IW_LP1$ QCHAR(}$M>$R> $ DG_SPC$X;$3$)>$ EEAT_WORD$ QCHAR% PWORD8% !W_LOOP%X;&%G_SPC1#NO_JUNK0%G_SPCQCHAR:% )}PLAST_ONED%Q>N% PWORD8X% WG_L:b%X;l%X;Eat a word > 29 charsv%X;%EAT_WORD%>%EAT_1QWORD8% SEND_BYTE% Q*}OEOF?% HWG_L%3%)>% HEAT_1%EAT_2 GET_BYTE% $EOF2?% HWG_L% CONL2U%R> A& DEAT_3 & R> Z& EEAT_3 &+} SEND_BYTE*& QOEOF?4& HWG_L>& !EAT_2H&EAT_3 SEND_BYTER& QOEOF?\& HWG_Lf& !GET_WORDp&X;z&X;Get a byte from file&,}X;&GET_BYTEQRINDEX&,& O>4INBUF& PTEMP&QRINDEX& O>5INBUF& PTEMP& 'RYSAV& &RXSAV&QRINDEX&RM-}AXGET& DFROMMEM' QRINDEX' RMAXGET' DFROMMEM$' FFROMMEM.'X;8' QEOF?B' FGO_GETML' #EOF2?V':`'GO_GETM GET1Kj.}' 'ERRORRt'6~' Q>4INBUF' PTEMP' Q>5INBUF' PTEMP'X;'Q>' PRINDEX'PRINDEX'8' IFROMMEM'$>0' QI/}CBLL9' PMAXGET( QICBLH9 (PMAXGET( QR_PASS( HLEN_OK(( QMAXGET2(,<(O>F( PMAXGETP(QMAXGETZ(O>d(PMAX0}GETn(LEN_OK#EOF?x( QMAXGET(;(S>( PMAXGET(QMAXGET(S>(PMAXGET(X;(FROMMEM%>( 'R_PASS( Q1}@TEMP7(BUMP RINDEX( %RYSAV( $RXSAV):)X;) X;Read @1K")X;,) GET1K$>06)Q>@) PICCOM9J)Q>4INBUF T) PI2}CBAL9^)Q>5INBUF h) PICBAH9r) Q>4|) PICBLL9) Q>5) PICBLH9)%>)MV_24QINBUF8) PINBUF8)1) IMV_23}4)X;) QR_PASS) FCALL_CIO) Q>4INBUF) PICBAL9) Q>5INBUF* PICBAH9*Q>* PICBLL9&*Q>0* PICBLH9:*X;D*CALL4}_CIO CIOVN* 'ERRORRX*6b*ICALL_GOODl*$>0v* QICBLL9*,* O>4INBUF* PINDR* QICBLH9* O>5INBUF* PINDR* QR_P5}ASS* HC_END* QINDR*,*O>* PINDR* QINDR+O> + PINDR+ C_END%> +Q> *+X;4+GET_K1P@INDR7>+BUMP6} INDRH+ $INDRR+(>5INBUF \+ DGET_K1f+CALL_GOOD8p+:z+X;+X;Send byte to Output+X;+SEND_BYTE'WYSAV+ &W7}XSAV+5+ QOUTPUT?+ FSEND_1+Q>+ POEOF?+7+:+SEND_1QWINDEX+,, O>4OUTBUF, PTEMP,QWINDEX$, O>5OUTB8}UF., PTEMP8, QWINDEXB, HTOBUFL,QWINDEXV,R>`, DTOBUFj,X;t,Q>~, PWINDEX,PWINDEX,$> ,Q> , PICC9}OM9, Q>4OUTBUF, PTEMP, PICBAL9, Q>5OUTBUF, PTEMP, PICBAH9,Q>, PICBLL9-Q> - PICBLH9- CIOV- INO_:}B(- #OEOF?2-NO_B'ERROR<- TOBUF%>F-7P- P@TEMP7Z-BUMP WINDEXd- $WXSAVn- %WYSAVx-:-X;-"X;Send remaining buffe;}r to file-X;-SEND_END$> -Q> - PICCOM9- Q>4OUTBUF- PICBAL9- Q>5OUTBUF- PICBAH9- QWINDEX- PICBLL9-QWI<}NDEX. PICBLH9. LWINDEX. FSEND_LV". CIOV,. SEND_LV:6.X;@.X;Send word to fileJ.X;T.SEND_WORD%>^.SEND_W1QW=}ORD8h.PLAST_WORD8r. FSND_LST|. SEND_BYTE. QOEOF?. HSEND_OUT.3. HSEND_W1.SND_LSTQNO_JUNK. HSEND_OUT. QLAS>}T_ONE.!SEND_BYTE. SEND_OUT:.X;.X;Make context line.X;.CONTEXT%> /CNT_0QD_CONT8/PTOPHALF8/1&/ ICNT?}_00/Q>:/Q>D/%>'N/CNT_1PCNLINE8X/1b/ ICNT_1l/?v/CNT_2QLAST_WORD8/ FCNT_3/ ASC2IC/M>/ PCNLINE8/3@}/ HCNT_2/ CNT_33/ 'WORD_POS/$>/CNT_4QWORD9/ FCNT_5/ ASC2IC/M>0 PCNLINE8 0203 0)>(*0 HCNT_440 CA}NT_5)>(>0 FCNT_LVH0CR0>\0 QLAST_ONEf0 ASC2ICp0M>z0 PCNLINE9020%>0 QRINDEX0,0 O>4INBUF0 PTEMP0QRINB}DEX0 O>5INBUF0 PTEMP0CNT_6Q@TEMP70 ASC2IC0M>0 PCNLINE913121(>($1 ECNT_LV.1)>81 DCNT_6B1CC}NT_LV$>'L1CNT_7QCNLINE9V1PTOPHALF9`10j1 ICNT_7t1:~1X;1X;This is the Dictionary1X;1 DICTION1NUM_WORDS D}1AWORD A1=B1=C1=D1=E11 F1=G1=H1=I1=J11 K1=L1=M12=N1=O11 P1=Q1=R1=S1=T11 U1=V1=W1=X1=Y1=E}Z11ENDWORD AFTERZ1X;1WORDS_IN =====2! ========= 2! =========2F}X;2 A1ATA(2 B1AUTA22 C1AANA<2 D1AOAF2 E1ANDAP2 F1AORAZ2 G1AETAd2 H1AOWAn2 I1ANAx2 J1AOGA2 K1G}ANOWA2 L1AETA2 M12AEA2 N1AOA2 O1ANA2 P1AUTA2 Q1AUITA2 R1AEDA2 S1AOA2 T1AHEA2 U1APAH}2 V1AANA2 W1AHOA3X1AEBECA3 Y1AESA3 Z1AIPA"3 AFTERZ,3X;63X;Set Run Address@3X;J3T3 START^3PAz.dX;---------------------nX;xX;Subroutines for CHECKX;X;---------------------X;TOKENIZE%>TOK_1QWJ}ORD8 FINV_IT CONL2U PT_WORD83 HTOK_1INV_IT)> FINV_LQT_WORD8L>PT_WORD8 INV_L:"K}X;,X;Print a tokenized word6X;@PRINT_WORD$>J PW_12T QT_WORD9^5hM>r EPUTX|7 IPW_1:X;X;GetL} amount of free memoryX;FIND_FREEQ>; SENDWORD PFREEM QRAMTOPSENDWORD PFREEM:X;X;SeM}arch the DictionaryX;&SEARCH MAKE_INDEX0?: QAWORD8D PINDRNQAWORD8X PINDRbQAWORD8l PTEMPvQAN}WORD8 PTEMPX; SRCH%> D_LEN3 Q@INDR7 ID_LEN3 'ASAVX;%>$> QT_WORD GSRCH_1O}2 SRCH_1QT_WORD9 R@INDR7  HSRCH_NXT*243> )ASAVH HSRCH_1R,\:;;found it!fX;pSRCH_NXTQINDRz, OASP}AV PINDR QINDRO> PINDR QINDR RTEMP HSRCH QINDR RTEMP HSRCH;:;;not found!Q}X;X;Proof a fileX;$PROOFPRINT PROOF_NM. GETFN8 EPROOF_MBX;LX;Make DOC.TMP same drive asVX;Source file.R}`X;j%> 1tQFILNAM~R> :;;a ':'? FPRF_GC$FILNAM(> : HPRF_GC?PRF_GC'TMPNAME OPENIN GS}PROOF_E OPENOUT GPROOF_EQ> PWCOUNTPWCOUNT PLAST_WORD SHO_BOXX;(PROOF1 GET_WORD2 QNO_JUT}NK< HP_LASTF QEOF2?P HPR_CLZ QOEOF?d HPR_OERnP_LAST CONTEXTx TOKENIZE SEARCH DPROOF2 NOT_FOUNDU}PROOF2 SEND_WORD QOEOF? FP_BMPPR_OER%ERROR HPROOF_EP_BMPBUMP WCOUNT SHB_3;;show counts !PROOF1V}X;PR_CL%ERRORR IPR_OK)> HPROOF_E"PR_OK DCLOSE, SEND_END6 CLOSE2@ RENAMEJPROOF_V CLOSE2TW}PROOF_M!MAINLOOP^PROOF_E IOERRORh DCLOSEr !PROOF_V|X;X;Move memory UP (delete)X;MOVE_UPQFROMLPUMOVX}LP QFROMHPUMOVLP QDESTLPUMOVLP QDESTHPUMOVLP $HLEN FSKIPMOV MOV1Q>MOV2PENDPOY}S%>UMOVLPQ8&P803: )ENDPOSD HUMOVLPN#UMOVLPX#UMOVLPb(>l FUMVOUTv0 HMOV1SKIPMZ}OVQLLEN HMOV2 UMVOUT:X;X;Move memory down (Insert)X;MOVE_DNQHLEN> LLLEN HNOTNULL: NOTNULL[},A  OFROMHPDMOVLP  QFROML*PDMOVLP4,>AH ODESTHRPDMOVLP\ QDESTLfPDMOVLPp2z %LLEN \}HDMOVLP FSKIPDMV DMOV1%>DMOVLPQ8P81)> HDMOVLPSKIPDMV"DMOVLP"DMOVLP0 HDM]}OV1: X; !X;Add a word to the Dictionary X;$ ADD_WORD%>. ADD_038 QT_WORD8B IADD_0L 3V )>` FADD_1j 1t ^}ADD_1'LEN_1~  FIND_FREE QFREEM HCAN_ADD QFREEM RLEN_1 ECAN_ADD : CAN_ADD MAKE_INDEX > #WORD_}S_IN9 HADD_NH #WORDS_IN9 ADD_NH CHK_EDIT WHERE? X; , QTEMP( PFROML2 OLEN_1< PDESTLF QTEMPP`} PFROMHZ O>d PDESTHn QENDWORDx ; SFROML PLLEN QENDWORD SFROMH PHLEN MOVE_DN X; QT_WORD a}M> ; S> A > T? ? UPDATEQAWORD8 ," OLEN_1, PAWORD86 QAWORD8@ O>J PAWORD8T 3^ 3h 2r b}(>| HUPDATE BUMP NUM_WORDS %> $> QT_WORD GUPD 2 UPDQT_WORD9 P@TEMP7 GADD_LV 2 3 HUPc}D ADD_LV!SHB_3 X; X;Delete a Word X;& DELETE CLRSCR0 PRINT M1: Q>D PXPOSN PYPOSX X;b PRINT DEL_Td}XTl %>v INPUT X; DEL_MV MY2WORD QMYBUF R>EOL HD_S !MAINLOOP D_S SEARCH DGO_DEL PRINT WNFe} WAITKEY !DELETE X; GO_DELPRINT DEL_IT  PRINT_WORD Q> ' EPUT GETYN* HDELETE4 %>> DEL_L3H Qf}T_WORD8R IDEL_L\ 3f )>p FDEL_Mz 1 DEL_M'LEN_1 SEARCH QINDR PDESTL , OLEN_1 PFROML QINDRg} PDESTH O> PFROMH QENDWORD ; SFROML PLLENQENDWORD$ SFROMH. PHLEN8 MAKE_INDEXB>LQWORDSq}B%DOS SYSB*)DUP SYSBSREAD ME B+iPSC DOCB-PSC EXEBSPELL DATBpSPELL M65B_ISPELL SUBB-AUTORUN SYS_IN9VLWORDS_IN9`R>j DDELETE_GtQWORDS_IN9~;S>PWORDS_IN9QWORDS_IN9S>PWORDS_IN9 r}MOVE_UPQNUM_WORDS;S>PNUM_WORDSQNUM_WORDSS>PNUM_WORDS  CHK_EDIT QT_WORDM>(;2s} S> A<>FT?P?ZDNDATEQAWORD8d;n SLEN_1x PAWORD8QAWORD8S>PAWORD8332(> HDNt}DATE SHO_BOXDELETE_G!DELETEX;X;Check Edit FlagX;CHK_EDITQ> PEDITED:"X;,X;Quit from Program6u}X;@QUITQEDITEDJ HTRY_SAVET "YPOS^GO_JMP!GO_DOShX;rTRY_SAVEPRINT SAV_TXT| ZAP_FN SHO_BOX GETYv}N HGO_JMPPRINT DC_PRMPRINT DC_TXTPRINT DC_PRM2 GET_RET DCLOSE$>0Q> PICCOM9Q>4DICw}_NAME PICBAL9Q>5DIC_NAME PICBAH9Q>& PAUX190Q>: PAUX29D CIOVN IQ_OPENXQ_ERR PUTCRb IOERRORlx} DCLOSEv !MAINLOOPX;Q_OPEN$>0Q>  PICCOM9Q>4DICTION PICBAL9Q>5DICTION PICBAH9 QENDWORDy};S>4DICTION PICBLL9QENDWORDS>5DICTION  PICBLH9 CIOV  GQ_ERR*X;4 DCLOSE>GO_DOSPRINT REST_z}TXTH GETYNR HDOS_MAIN\ !BEGINfDOS_MAIN$>p &GRACTLzQ>  PICCOM9 CIOV DCLOSE CLOSE2Q> %>4{}SYSVBV $>5SYSVBV SETVBVQ> %>4XITVBV $>5XITVBV SETVBVX;$> &HPOSP2Q>$ PICCOM9. Q>4EA|}DR8 PICBAL9B Q>5EADRL PICBAH9VQ> ` PAUX19j &AUX2t CIOV~Q>@ PSHFLOK !@DOSVEC:X;X;Load a Diction}}aryX;LOAD_DICPDIC_NAME  DCLOSE$>0Q> PICCOM9Q>4DIC_NAME PICBAL9Q>5DIC_NAME  PICBAH9Q~}> PAUX19(Q>2 PAUX29< CIOVF IL_OPENPL_ERR IOERRORZ7d7n DCLOSEx !BEGINX;L_OPENQ>$>0} PICCOM9Q>4DICTION PICBAL9Q>5DICTION PICBAH9Q> PICBLL9 PICBLH9 CIOV)> HL_ERR !DCLOSE}X;"X;Erase filename,X;6ZAP_FN%>@Q> JZAP_F1PFILNAM8T1^ IZAP_F1h:rX;|X;Find Where a word goesX;}!X;ENTER: LEN_1 = length T_WORDX;WHERE? MAKE_INDEX> QAWORD9 PTEMPQAWORD9 PTEMPQAWORD9} PINDRQAWORD9 PINDRX; WH_1$>Q> &WH_2PWORD_C902: HWH_2DX;N%>X WH_33b Q@TEMP7l P}WORD_C8v IWH_3M> PWORD_C83 'LEN_2X; )LEN_1 ESET_LEN %LEN_1SET_LEN'S_LEN%>$> QT_}WORD GWH_42  WH_432  QT_WORD9*PWORD_C84 IWH_4>M>HPWORD_C8RX;\%>fWH_5QWORD_C8p R}WORD_C8z DWHDONE FWHINC ECHKENDX; WHINC3 )S_LEN HWH_5X;CHKENDQTEMP, OLEN_2 PTEMP QTEM}PO> PTEMP RINDR HWH_1$ QTEMP. RINDR8 HWH_1B WHDONE:LX;VX;Move MYBUF to WORD`X;jMY2WOR}D STRIPt%>~MY2_1QMYBUF8 PWORD8 R>EOL FMY2_023 HMY2_1 MY2_0Q> PWORD8 QWORD HMY2_L Q}>EOL PMYBUFMY2_L!TOKENIZE X;X;View Dictionary by LetterX;(VIEWPRINT V_TXT2 #IPUT<VIEW_1 GETKEYF} CONL2UP R>EOLZHV_Ad !VIEW_LnX;x V_AR> A DVIEW_1 R> Z EVIEW_15 EPUT "IPUT7 PPREFIX}PN_W MAKE_IN$>?QWORDS_IN8 PWCOUNTQWORDS_IN8PWCOUNT"VIEW_2QAWORD8, PV_START963@2J}(>T HVIEW_2^X;hVIEWERQ>rPCOUNT;;words in col|PASAV;;columnPEOF?;;words left? ZAP_TOPQ>4TOPHALF} PSCRQ>5TOPHALF  PSCRVIEW_LP%> VIEW_33Q@V_START7 IVIEW_3 QASAV FVIEW_PW)> E}V_WAIT%> Q@SCR7& HV_WAIT0VIEW_PW PULL_WORD:%>DVIEW_SCQLAST_WORD8N FA_40X ASC2ICb P@SCR7l3v} HVIEW_SCX;A_40 SCRADD40 QEOF? HV_WAIT #COUNT QCOUNTR> HVIEW_LP QASAV HV_WAITQ>4TOPH}ALF PSCRQ>5TOPHALF  PSCR Q> PCOUNT  #ASAV* HVIEW_LP4X;>V_WAIT CLRSCRHPRINT M2RQ>}\ PXPOSf PYPOSpQWCOUNTz %WCOUNT CON_NUM, O>4NUMBUF5 Q>5NUMBUFO>?7 EPRINTPRI}NT N_WORDS PUTCR #YPOS QEOF? HVIEW_E SEE_MORE HVIEW_L$ !VIEWER.VIEW_L ZAP_FN8 SHO_BOXB !MAINL}OOPLVIEW_E!VIEWVX;`X;Make Letter in A an IndexjX;tMAKE_INDEXQT_WORD~MAKE_INM>;S> AT?:X; X};Pull a word from DictionaryX;PULL_WORDQ>PLAST_WORD QEOF? HPULL_OUTX;%>  PULL_13Q@V_START7}PLAST_WORD8( IPULL_12M><PLAST_WORD8FQ>PPLAST_WORD8Z3d 'S_LENn QPREFIXxPLAST_WORD)>} HPULL_N1RLAST_WORD HPULL_N1Q>PLAST_WORDPULL_N1QV_START, OS_LEN PV_STARTQV_START}O>PV_START RV_END HPULL_OUT QV_START" RV_END, HPULL_OUT6 #EOF?@ PULL_OUT:JX;TX;Strip Junk }from MYBUF^X;h STRIP$>r%>|STR_1QMYBUF9 R>EOL FSTR_2 CONL2UR> A DSTR_N R> Z DSTR_2 ST}R_N2 HSTR_1STR_2QMYBUF9 PMYBUF8 FSTR_EN2 3 HSTR_2 STR_EN:& X;0 X;Rename XIO: X;D X_RENQ> N H}DO_XIOX X;b X;Delete XIOl X;v X_DELQ>! HDO_XIO X; X;Unlock XIO X; X_UNLQ>$ X; X;Perform an XIO on CH #}4 X; DO_XIO5;;XIO Command $>@ Q> PICCOM9 CIOV!$>@ !7! PICCOM9 ! Q>4FILNAM*! PICBAL94! Q>5FILNAM>!} PICBAH9H!Q>R! PAUX19\! PAUX29f! !CIOVp!X;z!X;Rename the files!X;! RENAME X_UNL;;unlock source!%>!REN_1Q}FILNAM8! PMYBUF8!R> .!FS_Y! R>EOL! HUP_Y! S_Y'ASAV! UP_Y3!)>! HREN_1" %ASAV" ADD_BKP" X_UNL;;u}nlock backup$" X_DEL;;delete backup."X;8"X;Restore FILNAMB"X;L"%>V"REN_2QMYBUF8`" PFILNAM8j"1t" IREN_2~"X;"$}>" F_EL2" QFILNAM9" R>EOL" HF_EL"Q> ," PFILNAM9"2"A"?"$>" F_COL2# QFILNAM9 #R> :# HF_COL#2(#} &ASAV2#X;<#ADD_8QMYBUF9F# PFILNAM8P# R>EOLZ# FREN_4d#R> .n# FREN_4x#2#3# HADD_8#REN_4 ADD_BKP# X_REN;;}rename source#X;#%> #C_TMPQTMPNAME8# PFILNAM8#1# IC_TMP#Q> ,#PFILNAM #%> $ $ASAV$C_FNQMYBUF9$} PFILNAM8"$2,$36$ R>EOL@$ HC_FNJ$ X_REN;;rename DOC.TMPT$ !ZAP_FN^$X;h$X;Add the .BKP Extensionr$X;|$ADD_BKP$>}$REN_5QBKP_TXT9$ PFILNAM8$3$0$ IREN_5$:$X;$X;Get a Directory Entry$X;$GET_ENTRY$>0$Q>$ PICCOM9}$ Q>4MYBUF% PICBAL9% Q>5MYBUF% PICBAH9&%Q> 0% PICBLL9:%Q>D% PICBLH9N% !CIOVX%X;b%X;Open for Directoryl%X;v%} OPEN_DIR5%C%5% DCLOSE%$>0%7% PICBAH9%7% PICBAL9%Q>% PICCOM9%Q>% PAUX19%Q>& PAUX29 & !C}IOV&X; &X;Get Dictionary Directory*&X;4&GETDIRQ> ?>&PDIC_NAME H&$>R&Q>4DIC_NAME\&%>5DIC_NAMEf& HNORM_DIRp&}X;z&X;Normal Directory&X;&DIRECTPRINT DRIVE_N& #IPUT&DIR_1 GETKEY&M>&R>& FGD_MAIN&%>&DIR_2RL}EGAL_D8& FG_DIR&1& IDIR_2& GDIR_1'X;'G_DIRPDIR_TXT'5$' EPUT.' PUTCR8'7B'N>L' PDIR_QV'$>`'Q}>4DIR_TXTj'%>5DIR_TXTt' NORM_DIR~'GD_MAIN"IPUT' !MAINLOOP'X;'NORM_DIR&RJUST' OPEN_DIR' 'ILEN' DIR_TOP}' %ILEN' IGDIR' IOERROR'NO_DIR DCLOSE'%>'NO_DQD_NONE8(PTOPHALFa8 (1( INO_D(;((:2(X;<(GDIR G}ET_ENTRYF( GGDDIRP(%>Z(AT_END?QFREETXT8d(RMYBUF8n( HNOTFREEx(1( IAT_END?( QRJUST( LCOUNT( FNO_DIR(X;}(NOTFREE#COUNT( NF_2%>(DIRLP1QMYBUF8( R>EOL( FENTRYDN( ASC2IC( P@SCR7(3) HDIRLP1)ENTRYDNQSCR)},")O>,)PSCR6) DG_TST@) #SCRJ)G_TSTQCOUNTT)R>^) DGDIRh) ED_WTr)X;|)GDDIRQCOUNT) LRJUST) FNO_DIR) }DCLOSE),):)X;)D_WT SEE_MORE) HGDDIR) DIR_TOP) !GDIR)X;)X;Do Top of Directory Screen)X;*DIR_TOP ZA}P_TOP*Q>4TOPHALF( *PSCR&*Q>5TOPHALF( 0* PSCR:*Q>D* PCOUNTN* $RJUSTX* HJ_DIRb*%>l*DT_1QD_HEAD8v*}PTOPHALF 8*1* IDT_1*:*X;* J_DIR%> *JD_1QDIR_N8*PTOPHALF 8*1* IJD_1*:*X;*X;See More?*X;+}SEE_MOREPRINT V_MORE + !GETYNX;* J_DIR%> *JD_1QDIR_N8*PTOPHALF 8*1* IJD_1*:*X;*X;See More?*X;+" -=1L#_|^`"}Enter RETURN for DEFAULT DictionaryWhich # to Load: Wo!}rking Dictionary #: I/O Error - Press any key Re-startFile to Proof: Add WordAdd File: Delete Word: Delete '!}Word Not Found.Save DictionaryInsert disk, Press View Letter [A-Z]? View More Words in ' '.Drive [1,2,3,4,!}8]? 12348}1) roof Document2) elete Word3) iew Dictionary4) dd File to Dictionary5) atalog6) xit PSC!}Choice > PDVACEQRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRRRRRRRE|$ictionary|&ile|ARRRRRRRRRRRWRRXRRRRRRRRRRWR!}RRRRRRRRRRRD|&ree|7ords|#ount|ZRRRRRRRRRRRXRRRRRRRRRRRRRXRRRRRRRRRRRRC!}000 1112b437?9H512Ck1 u?11 1`轊1H) >h`83Cj4C!}` 8BCCCȱȄ10轊1фĮ`eiŕʥŖ8`Ӡ. \< >u11:1:- ?0_!} @0Z1 v< C@) }B 32 p2 ;> _B& Lb4/ \< P2' ; >бȹ1 p2ei3C8廅4!}C弅 85C6CN5C85C6C6C S3B8BBB C51)8@ B8婙BCC v1/ \<&/ \<:/ \< 8; <0BÝD-EJK V ; > L<Щ B V < <_ \b \ЩBѝD-E JK V@l - <0BÝD-EJK V !}>hh <.a 8` d909-1 挠1ɛ <<i!}恥İ  <` : b:L: :( - ` - `c/ \ !` ::/ ЎԆ!}ʎčʆ' ; #0-1L;ԠW; \e; \ԩ( s-s- @;L;!} S<ɛ`i(`H ԍh@ЈL_ i0Х itLb}"#$􅇥`ɛ LL=`{}ҥ̝1 >Ý11L; ;` @?. \<.!} \< ;. \< S<ƍ` ;0 \< >Hi '8J. \< P2h! !> ;憠 = t81ɛ 7 p2 !}. \< > 3`). \< S<ɛ)YYNY ;ƍ ;(`k1` =8`1:1:.11 u?!}1ɛ11ESD1`ԅ ؠ .ȱ)󄢩8墪H.h`ɛ )a{)`. \<膸 >@ ?0!}81 v< C@ }B _B 32 p2 3 11 <<)>1Ȅk1 <<)>1((0 <<)>1ii) <<)>1('>1!`iCjClCnCo!}CqCsCuCwCxCzC}CCCCCCCCCCCCCCCCUANOEOONOEUU!}IEHAHEBEEI -CCCCCCCCCCUANOEOONOEUU